1. Field of the Invention
The present invention relates to a method, system, and program for migrating files maintained in a proxy server primary cache storage medium to a secondary cache storage medium that provides additional storage space to improve network bandwidth conservation.
2. Description of the Related Art
A person accesses the Internet or World Wide Web using an Internet Web browser, also known as an Hyper Text Transfer Protocol (HTTP) client, that can process Web pages coded in the Hyper Text Markup Language (HTML) format. The HTTP client sends a request message to a server over the Internet which includes HTTP server software to process the request message. The request message typically includes a Universal Resource Locator (URL) which specifies the path of the requested information on the Internet and the name of the file at the specified path. The HTTP server processes the request and returns the requested file at the URL if it is available as part of a response message to the requesting HTTP client.
The popularity of the World Wide Web has led to long communication delays to retrieve information from servers connected to the World Wide Web client/server architecture. Two of the primary causes of server and Internet communication delay are bandwidth constraints of the transmission medium between computer systems and latency in server processing time of file requests. Bandwidth constraints are exasperated as network traffic increases and reduces available bandwidth resources to handle further transmissions. Current techniques for addressing communication delay include increasing the bandwidth by developing more robust transmission medium and conserving bandwidth by using proxy servers. Proxy servers cache previously requested files retrieved from over a network, such as the Internet. The proxy server conserves network bandwidth by servicing requests for network files from the cache instead of consuming bandwidth to retrieve the requested file from over the network.
A caching proxy server is a server that provides an interface between client computers and the World Wide Web. A client that accesses the World Wide Web via a proxy server requests the web page from the proxy server. The proxy server processes the request by first determining whether the requested web page is maintained in local cache. If so, the proxy server returns the requested web page from the local cache. Otherwise, the proxy server acts to retrieve the requested web page over the World Wide Web network. The request may utilize a communication protocol such as the HTTP, file transfer protocol (FTP), etc. Upon retrieving the requested web page, the proxy server stores the web page in local cache and returns the page to the requesting client. Subsequent requests for the web page may be serviced from the cache. In this way, the proxy server conserves bandwidth by returning files from cache instead of network transmission lines. Returning requested data from local cache not only conserves bandwidth, but also improves retrieval speed if the retrieval time from the cache storage medium is faster than the network transmission time.
One problem with caching proxy servers is the storage limitations of the local cache. The proxy server must continuously delete files from the local cache to make room for more recently retrieved web pages. This in turn reduces the likelihood that the proxy server can return a file from cache and conserve bandwidth resources. Thus, there is a need in the art to provide an improved system for returning requested files from a cache to improve bandwidth savings over current proxy server techniques.
To overcome limitations in the art described above, preferred embodiments disclose a system, method, and program for caching files retrieved from a server over a network. A computer system receives a request from a requesting computer system for a file maintained on the server. The computer system is capable of communicating with the server via the network. The computer system retrieves the requested file from the server over the network and stores a copy of the requested file in a primary storage. The computer system further returns another copy of the requested file to the requesting computer system. The computer system determines retrieved files to migrate from the primary storage to a secondary storage and migrates the determined retrieved files from the primary storage to the secondary storage.
Further embodiments provide a method, system, and program for migrating the retrieved files from the primary storage to the secondary storage. A computer determines a distribution of file requests per unit of time according to file size for files maintained in the primary storage and the secondary storage. The computer then processes the determined distribution and a provided maximum number of file requests per unit of time to determine a minimum file size for migration. Files having a size greater than the minimum file size for migration are migrated from the primary storage device to the secondary storage device.
In still further embodiments, the files are retrieved from one or more servers over a network and the file requests are for files maintained in servers that are capable of being retrieved over the network. The retrieved files are initially stored in the primary storage device and may subsequently be migrated to the secondary storage device. Greater cache space comprised of both primary and secondary storage increases the likelihood that file requests may be returned from cache and not the network, which in turn conserves network bandwidth resources by avoiding having to retrieve the file from over the network.
Still further, in preferred embodiments, the secondary storage is less expensive, and likely slower, than the primary storage. The secondary storage, thus, provides an economical solution to provide greater cache space to increase network bandwidth conservation. Cost considerations play a greater role when increasing the overall cache size to a terabyte or more of storage. A less expensive secondary storage provides additional cache space to conserve network bandwidth at a cost significantly less than providing the same overall cache space with the more expensive primary storage.
In yet further embodiments, the minimum file size for migration is set to a value, such that the aggregate estimated number of file requests per unit of time for files larger than the minimum file size for migration does not exceed a processing capacity of the secondary storage, i.e., the number of file requests per unit of time that the secondary storage can process.
Preferred embodiments select files for migration from a primary to a secondary storage device based on file size. With preferred embodiments, files are migrated in a manner such that processing requests for the files migrated to the secondary storage will not cause retrieval from secondary storage to exceed the retrieval capacities of the secondary storage. In this way, network bandwidth is conserve because requested files may be retrieved from the secondary storage instead of retrieving such files from a server over the network.
Preferred embodiments are particularly advantageous to provide secondary storage for files retrieved from a network, such as the Internet, by a proxy server. Typically, in a proxy server system, smaller files are requested substantially more frequently than larger files. Preferred embodiments, thus, migrate the larger, less frequently requested files. This allows for substantial network bandwidth savings because the larger files which consume more of the network bandwidth may be retrieved from secondary storage instead of being retrieved from over the network. Further, by leaving room in the typically faster primary storage device or cache for the smaller files, overall response time to file requests is improved because the smaller files are requested more frequently.
Preferred embodiments further provide a dynamic method for determining the minimum file size for migration based on current file request statistics. This dynamic method insures that current file request data or an average of current and past file request data is used to select a minimum file size for migration that incorporates recent file request trends. Preferred embodiments select a minimum file size for migration such that the estimated total requests per unit of time for files larger than the minimum file size for migration is within the processing capacity of the secondary storage device. If too many files are migrated, then the number of file requests directed to the secondary storage per unit of time may exceed the file request processing capacity of the secondary storage and cause requests to accumulate in a lengthy queue. Substantial delays may occur in processing such lengthy queues of file requests against the secondary storage. Such delays obviate the benefit of secondary storage because at some point it will become more efficient to retrieve the file from over the network instead of waiting in the queue to access secondary storage. Thus, preferred embodiments provide a method for determining the minimum file size for migration to limit the number of files migrated in order to avoid a situation where file requests toward secondary storage exceed the secondary storage processing capacity.